In a frequency-hopping network, devices communicate using different frequency channels at different times. To communicate a packet, the transmitter and receiver must be configured to the same channel during the packet transmission. Devices may synchronize to a hopping schedule that indicates what channel to use at a specific point in time. A hopping schedule typically divides time into timeslots, with each timeslot assigned a channel. The time-ordered sequence of channels in a hopping schedule is called the channel sequence. For two or more devices to synchronize to a hopping schedule, they must agree on the channel sequence, timeslot duration, and a common time base. Generally, channel schedules may be assigned to each transmitter-receiver pair independently so that neighboring transmitter-receiver pairs can communicate simultaneously on different channels. Alternatively, all devices in a network may synchronize with a single channel schedule such that all devices transmit and receive on a shared channel at any time.
Transmitting distributed messages, e.g., broadcast and/or multicast messages, in frequency-hopping networks is especially challenging. One option used currently is to transmit the distributed messages during a timeslot where multiple receivers are scheduled to listen on the same channel at the same time. However, nodes must maintain close synchronization with the transmitter and involves significant state complexity and state synchronization dependencies. Alternatively, a node may make repeated transmissions to each of its neighbors on the respective (and independently scheduled) channels. This overhead scales linearly with the number of receivers (or neighbors for broadcast), which may be particularly problematic since in certain networks, nodes can have hundreds or thousands of neighbors.